package xiongwei.jiang.model.dto.response;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import java.util.List;

/**
 * 企业内部开发 / 服务端API / OA / 打卡 / 获取打卡记录数据（token 必须由打卡 secret 获取）
 *
 * @author 天之蓝
 */
@lombok.Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class CheckinRecord {
    /**
     * 出错返回码，为0表示成功，非0表示调用失败
     */
    private Integer errcode;
    /**
     * 返回码提示语
     */
    private String errmsg;
    /**
     * 打卡数据
     */
    private List<Data> checkindata;

    @lombok.Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class Data {
        /**
         * 用户id
         */
        private String userid;
        /**
         * 打卡规则名称
         */
        private String groupname;
        /**
         * 打卡类型。字符串，目前有：上班打卡，下班打卡，外出打卡
         */
        private String checkin_type;
        /**
         * 异常类型，字符串，包括：时间异常，地点异常，未打卡，wifi异常，非常用设备。如果有多个异常，以分号间隔
         */
        private String exception_type;
        /**
         * 打卡时间。Unix时间戳
         */
        private Long checkin_time;
        /**
         * 打卡地点title
         */
        private String location_title;
        /**
         * 打卡地点详情
         */
        private String location_detail;
        /**
         * 打卡wifi名称
         */
        private String wifiname;
        /**
         * 打卡备注
         */
        private String notes;
        /**
         * 打卡的MAC地址/bssid
         */
        private String wifimac;
        /**
         * 打卡的附件media_id，可使用media/get获取附件
         */
        private List<String> mediaids;
        /**
         * 位置打卡地点纬度，是实际纬度的1000000倍，与腾讯地图一致采用GCJ-02坐标系统标准
         */
        private Long lat;
        /**
         * 位置打卡地点经度，是实际经度的1000000倍，与腾讯地图一致采用GCJ-02坐标系统标准
         */
        private Long lng;
        /**
         * 打卡设备id
         */
        private String deviceid;
        /**
         * 标准打卡时间，指此次打卡时间对应的标准上班时间或标准下班时间
         */
        private Long sch_checkin_time;
        /**
         * 规则id，表示打卡记录所属规则的id
         */
        private Integer groupid;
        /**
         * 班次id，表示打卡记录所属规则中，所属班次的id
         */
        private Integer schedule_id;
        /**
         * 时段id，表示打卡记录所属规则中，某一班次中的某一时段的id，如上下班时间为9:00-12:00、13:00-18:00的班次中，9:00-12:00为其中一组时段
         */
        private Integer timeline_id;
    }
}
